﻿#if CONVERT_MODELS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MCSkin3D.Models.Convert
{
	public class ModelArmorStandArmor : ModelBiped
	{
		public ModelArmorStandArmor() :
			this(0.0F)
		{
		}

		public ModelArmorStandArmor(float modelSize) :
			this(modelSize, 64, 32)
		{
		}

		protected ModelArmorStandArmor(float modelSize, int textureWidthIn, int textureHeightIn) :
			base(modelSize, 0.0F, textureWidthIn, textureHeightIn)
		{
		}

		/**
		 * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
		 * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
		 * "far" arms and legs can swing at most.
		 */
		public override void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn)
		{
			if (entityIn is EntityArmorStand)
			{
				EntityArmorStand entityarmorstand = (EntityArmorStand)entityIn;
				this.bipedHead.rotateAngleX = 0.017453292F * entityarmorstand.getHeadRotation().getX();
				this.bipedHead.rotateAngleY = 0.017453292F * entityarmorstand.getHeadRotation().getY();
				this.bipedHead.rotateAngleZ = 0.017453292F * entityarmorstand.getHeadRotation().getZ();
				this.bipedHead.setRotationPoint(0.0F, 1.0F, 0.0F);
				this.bipedBody.rotateAngleX = 0.017453292F * entityarmorstand.getBodyRotation().getX();
				this.bipedBody.rotateAngleY = 0.017453292F * entityarmorstand.getBodyRotation().getY();
				this.bipedBody.rotateAngleZ = 0.017453292F * entityarmorstand.getBodyRotation().getZ();
				this.bipedLeftArm.rotateAngleX = 0.017453292F * entityarmorstand.getLeftArmRotation().getX();
				this.bipedLeftArm.rotateAngleY = 0.017453292F * entityarmorstand.getLeftArmRotation().getY();
				this.bipedLeftArm.rotateAngleZ = 0.017453292F * entityarmorstand.getLeftArmRotation().getZ();
				this.bipedRightArm.rotateAngleX = 0.017453292F * entityarmorstand.getRightArmRotation().getX();
				this.bipedRightArm.rotateAngleY = 0.017453292F * entityarmorstand.getRightArmRotation().getY();
				this.bipedRightArm.rotateAngleZ = 0.017453292F * entityarmorstand.getRightArmRotation().getZ();
				this.bipedLeftLeg.rotateAngleX = 0.017453292F * entityarmorstand.getLeftLegRotation().getX();
				this.bipedLeftLeg.rotateAngleY = 0.017453292F * entityarmorstand.getLeftLegRotation().getY();
				this.bipedLeftLeg.rotateAngleZ = 0.017453292F * entityarmorstand.getLeftLegRotation().getZ();
				this.bipedLeftLeg.setRotationPoint(1.9F, 11.0F, 0.0F);
				this.bipedRightLeg.rotateAngleX = 0.017453292F * entityarmorstand.getRightLegRotation().getX();
				this.bipedRightLeg.rotateAngleY = 0.017453292F * entityarmorstand.getRightLegRotation().getY();
				this.bipedRightLeg.rotateAngleZ = 0.017453292F * entityarmorstand.getRightLegRotation().getZ();
				this.bipedRightLeg.setRotationPoint(-1.9F, 11.0F, 0.0F);
				copyModelAngles(this.bipedHead, this.bipedHeadwear);
			}
		}
	}
}
#endif